home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / bbs / WWBBSDoors.lha / WWBBS / rexxDoors / Chicago.rexx < prev    next >
OS/2 REXX Batch file  |  1995-04-27  |  49KB  |  1,786 lines

  1. /* Chicago Gangland Version 1.21 by Steve Robbins*/
  2. /* Converted by David Prothero */
  3. /* Converted by David Simpson for BBBBS */
  4. /* Version 1.3 by Matt English 6-21-92.
  5.    New Features: Bugs fixxed, plays better in local mode, and
  6.    UnderWorld Casino at location 25, 25!
  7.  
  8.    New Features in version 1.4: by Matt English 7-10-92
  9.    Full menu option added, Leave a comment to next gangster,
  10.    Game resets and adds winners name to "GangLord Hall of Fame"
  11.    when player reaches 500,000 points.
  12.  
  13.    Version 1.41 7-25-92 by Matt Egnlish
  14.    There was a small bug! Yikes!
  15.  
  16.    Version 1.42 7-26-92 - 1.44 10-22-93 by RLStockton
  17.    To work better without BaudBandit in LOCAL mode
  18. */
  19.  
  20.  
  21. options results
  22.  
  23. CR='0D'x  /* Carraige Return */
  24. CALL TIME('R')
  25. SIGNAL ON BREAK_C
  26. SIGNAL ON BREAK_E
  27.  
  28. bbspath=GETCLIP('BBS_path')
  29. bbspath1 = bbspath'rexxdoors/'
  30. bbspath2=bbspath'rexxDoors/Data/'
  31.  
  32. PARSE arg bbsname winnings savewinnings secs .
  33. IF secs='' THEN secs=3600
  34.  
  35. signal on syntax
  36.  
  37. /* Open the support library if it is not already open. */
  38. if ~show('L',"rexxsupport.library") then do
  39.     addlib('rexxsupport.library',0,-30,0)
  40.      end
  41.  
  42. BBSIDENTIFY EMULATION
  43. PARSE VAR RESULT type .
  44. if type = "ANSI" then
  45.   colorflag=1
  46. else
  47.   colorflag=0
  48.  
  49. if bbsname='' then bbsname=bbs
  50.  
  51. BBSIDENTIFY USER
  52. PARSE VAR RESULT Username From Acces .
  53. Name = substr(Username,2,length(Username)-2)
  54. Spacename = Name
  55.  
  56. /*ansiflag = result*/
  57. LINES = 20  /* upper(result) - 2 */
  58. ADDRESS rexx 'random(1,2,time('S'))'
  59. if colorflag = 1 then
  60.   do
  61.     WHITE = ''
  62.     RED = ''
  63.     YELLOW =''
  64.     BLACK = ''
  65.     GREEN = ''
  66.     CYAN = ''
  67.     MAGENTA = ''
  68.     BLUE = ''
  69.     IF ADDRESS()~='BAUD' THEN BLUE=RED
  70.     CLEAR = ''
  71.     HOM = 'H'
  72.     CLSCREEN = ''
  73.   end
  74. else
  75.   do
  76.     WHITE = ''
  77.     RED = ''
  78.     YELLOW =''
  79.     BLACK = ''
  80.     GREEN = ''
  81.     CYAN = ''
  82.     MAGENTA = ''
  83.     BLUE = ''
  84.     CLEAR = ''
  85.     HOM = ''
  86.     CLSCREEN = ''
  87. end
  88. File.1 =  bbspath2'gangland/instructions'
  89. File.2 =  bbspath2'gangland/news7'
  90. File.3 =  bbspath2'gangland/news6'
  91. File.4 =  bbspath2'gangland/news5'
  92. File.5 =  bbspath2'gangland/news4'
  93. File.6 =  bbspath2'gangland/news3'
  94. File.7 =  bbspath2'gangland/news2'
  95. File.8 =  bbspath2'gangland/news1'
  96. File.9 =  bbspath2'gangland/protect'
  97. File.10 = bbspath2'gangland/position'
  98. File.11 = bbspath2'gangland/chic.oneliner'
  99. File.12 = bbspath2'gangland/chic.fame'
  100. File.13 = bbspath2'gangland/aliases'
  101. File.14 = bbspath2'gangland/top10'
  102. /* Starting Stats */
  103. turnsleft = 25
  104. gangmembers = 50
  105. datec = date()
  106. points = 5000
  107. protection = 0
  108. totalgangmembers = 50
  109. money = 1000
  110. bootleg = 0
  111. costfor = 1
  112. pos = 0
  113. deathflag = 0
  114. menus = 0
  115.   longdashes='-----------------------------------------------------------------------------'
  116. /*begin*/
  117. if exists(bbspath2'gangland/position') then
  118.   do
  119.     call open(lastpos,bbspath2'gangland/position','R')
  120.     do i = 1 to 10000
  121.       mypos.i = readln(lastpos)
  122.       posstartx.i = Word(mypos.i,1)
  123.       posstarty.i = Word(mypos.i,2)
  124.       posgang.i = Word(mypos.i,3)
  125.       posmoney.i = Word(mypos.i,4)
  126.       posalias.i = Delword(mypos.i,1,4)
  127.       if EOF(lastpos) then break
  128.       pos = pos + 1
  129.     end
  130.     call close(lastpos)
  131.   end
  132. call open(prot,file.9,'R')
  133. say'Loading Chicago Gangland...'cr
  134. do c = 1 to 25
  135.    CALL WRITECH(STDOUT,'.')
  136.    do c1 = 1 to 25
  137.       protect.c.c1 = readln(prot)
  138.    end
  139. end
  140. datel = readln(prot)
  141. if datec ~= datel then
  142.   do
  143.     SAY ''||CR
  144.     SAY ''||CR
  145.     SAY CYAN'Standby, running maintenance program.'CLEAR||CR
  146.     call seek(prot,0,'B')
  147.     do i = 1 to 625
  148.         proln.i = readln(prot)
  149.     end
  150.     call close(prot)
  151.     call open(prot,File.9,'W')
  152.     do i = 1 to 625
  153.         call writeln(prot,proln.i)
  154.     end
  155.     call writeln(prot,datec)
  156.     if exists(file.8) then address command 'c:delete 'file.8' quiet'
  157.     if exists(file.7) then address command 'c:rename 'file.7' 'file.8' quiet'
  158.     if exists(file.6) then address command 'c:rename 'file.6' 'file.7' quiet'
  159.     if exists(file.5) then address command 'c:rename 'file.5' 'file.6' quiet'
  160.     if exists(file.4) then address command 'c:rename 'file.4' 'file.5' quiet'
  161.     if exists(file.3) then address command 'c:rename 'file.3' 'file.4' quiet'
  162.     if exists(file.2) then address command 'c:rename 'file.2' 'file.3' quiet'
  163.     call open(news7,file.2,'W')
  164.     call writeln(news7,'******************************************************')
  165.     call writeln(news7,'                THE CHICAGO DAILY NEWS')
  166.     call writeln(news7,'                     'datec)
  167.     call writeln(news7,'******************************************************')
  168.     call writeln(news7,' ')
  169.     call close(news7)
  170.  
  171.     call open(aliases,bbspath2'gangland/aliases','R')
  172.     i = 0
  173.     do until EOF(aliases)
  174.         i = i + 1
  175.         line.i = readln(aliases)
  176.     end
  177.     call close(aliases)
  178.     do u = 1 to 10000
  179.         if u = i then signal cont
  180.         Namem = word(line.u,1)
  181.         if namem = '' then namem = junk
  182.         alias = Delword(line.u,1,1)
  183.         if exists(bbspath2'gangland/'Namem) then
  184.           do
  185.             call open(stats,bbspath2'gangland/'Namem,'R')
  186.             aliasa = readln(stats)
  187.             Turnsleftm = readln(stats)
  188.             gangmembersm = readln(stats)
  189.             datem = readln(stats)
  190.             startxm = readln(stats)
  191.             startym = readln(stats)
  192.             pointsm = readln(stats)
  193.             moneym = readln(stats)
  194.             totalgangmembersm = readln(stats)
  195.             protectionm = readln(stats)
  196.             bootlegm = readln(stats)
  197.             call close(stats)
  198.             protectmoney = protectionm * 200
  199.             bootlegmoney = bootlegm * 500
  200.             moneym = moneym + protectmoney + bootlegmoney
  201.             turnsleftm = 25
  202.             call open(stats,bbspath2'gangland/'Namem,'W')
  203.             call writeln(stats,aliasa)
  204.             call writeln(stats,turnsleftm)
  205.             call writeln(stats,gangmembersm)
  206.             call writeln(stats,datem)
  207.             call writeln(stats,startxm)
  208.             call writeln(stats,startym)
  209.             call writeln(stats,pointsm)
  210.             call writeln(stats,moneym)
  211.             call writeln(stats,totalgangmembersm)
  212.             call writeln(stats,protectionm)
  213.             call writeln(stats,bootlegm)
  214.             call close(stats)
  215.           end
  216.     end
  217.   end
  218. cont:
  219. SAY ''||CR
  220. SAY ''||CR
  221. SAY BLUE'Done'||CR
  222. call close(prot)
  223.                                              
  224. street.1 = First
  225. street.2 = Second
  226. street.3 = Third
  227. street.4 = Fourth
  228. street.5 = Fifth
  229. street.6 = Sixth
  230. street.7 = Seventh
  231. street.8 = Eighth
  232. street.9 = Ninth
  233. street.10 = Tenth
  234. street.11 = Eleventh
  235. street.12 = Twelveth
  236. street.13 = Thirteenth
  237. street.14 = Fourteenth
  238. street.15 = Fifteenth
  239. street.16 = Sixteenth
  240. street.17 = Seventeenth
  241. street.18 = Eighteenth
  242. street.19 = Nineteenth
  243. street.20 = Twentieth
  244. street.21 = Twentyfirst
  245. street.22 = Twentysecond
  246. street.23 = Twentythird
  247. street.24 = Twentyfourth
  248. street.25 = Twentyfifth
  249.  
  250. say CLSCREEN
  251. SAY ''||CR
  252. SAY ''||CR
  253. SAY BLUE'                 +----------------------------------------------+'CLEAR||CR
  254. SAY BLUE'                 |               'YELLOW'CHICAGO GANGLAND'BLUE'               |'CLEAR||CR
  255. SAY BLUE'                 |            'YELLOW'Written for SkyLine BBS'BLUE'           |'CLEAR||CR
  256. SAY BLUE'                 |               'YELLOW'by Steve Robbins'BLUE'               |'CLEAR||CR
  257. SAY BLUE'                 |                'YELLOW'Copyright 1990'BLUE'                |'CLEAR||CR
  258. SAY BLUE'                 |                                              |'CLEAR||CR
  259. SAY BLUE'                 |            'RED'Converted to TransAmiga'BLUE'           |'CLEAR||CR
  260. SAY BLUE'                 |               'RED'by David Prothero'BLUE'              |'CLEAR||CR
  261. SAY BLUE'                 |                                              |'CLEAR||CR
  262. SAY BLUE'                 |              'RED'Converted to BBBBS'BLUE'              |'CLEAR||CR
  263. SAY BLUE'                 |               'RED'by David Simpson'BLUE'               |'CLEAR||CR
  264. SAY BLUE'                 |                                              |'CLEAR||CR
  265. SAY BLUE'                 |              'GREEN'Converted to WWBBS'BLUE'              |'CLEAR||CR
  266. SAY BLUE'                 |              'GREEN'by Michaël Bruyere'BLUE'              |'CLEAR||CR
  267. SAY BLUE'                 |                                              |'CLEAR||CR
  268. SAY BLUE'                 |       'MAGENTA'Version 1.44 includes UnderWorld'BLUE'       |'CLEAR||CR
  269. SAY BLUE'                 |       'MAGENTA'Casino feature, located at 25, 25.'BLUE'     |'CLEAR||CR
  270. SAY BLUE'                 |             'MAGENTA'by Matt English 7-25-92'BLUE'          |'CLEAR||CR
  271. SAY BLUE'                 |                                              |'
  272. SAY BLUE'                 +----------------------------------------------+'CLEAR||CR
  273. SAY CR
  274. say ''cr
  275. call pressreturn
  276. /*continue*/
  277.  
  278. aliascheck: 
  279. call open(aliases,bbspath2'gangland/aliases','R')
  280. u = 1
  281. do until EOF(aliases)
  282.    alias1.u = readln(aliases)
  283.    alias2.u = word(alias1.u,1)
  284.    alias3.u = Delword(alias1.u,1,1)
  285.    u = u + 1
  286. end
  287. call close(aliases)
  288. marker = u - 1
  289. if ~exists(bbspath2'gangland/'Name) then
  290.   do
  291.     prompt(  Magenta'Please enter an alias: ');
  292.     alias = readstr()
  293.     SAY  ' '
  294.     if alias = '' then
  295.       do
  296.         SAY RED'You must enter an alias!'CLEAR||CR
  297.         signal aliascheck
  298.       end
  299.     u = 1
  300.     do i = 1 to marker
  301.         if alias = alias3.u then
  302.           do
  303.             SAY RED'That alias is already being used!'||CR
  304.             CALL delay(100)
  305.             signal aliascheck
  306.           end
  307.     u = u + 1
  308.     end
  309.     call open(aliases,bbspath2'gangland/aliases','W')
  310.     do i = 1 to (u + 1)
  311.         call writeln(aliases,alias1.i)
  312.     end
  313.     call writeln(aliases,Name' 'alias)
  314.     call close(aliases)
  315.   end
  316. signal begin
  317.  
  318. begin:
  319. if ~exists(bbspath2'gangland/'Name) then do
  320.    call open(stats,bbspath2'gangland/'Name,'W')
  321.    call writeln(stats,alias)
  322.    call writeln(stats,turnsleft)
  323.    call writeln(stats,gangmembers)
  324.    call writeln(stats,datec)
  325.    startx = upper(random(1,25,time('s')))
  326.    call writeln(stats,startx)
  327.    starty = upper(random(1,25,time('s')))
  328.    call writeln(stats,starty)
  329.    call writeln(stats,points)
  330.    call writeln(stats,money)
  331.    call writeln(stats,totalgangmembers)
  332.    call writeln(stats,protection)
  333.    call writeln(stats,bootleg)
  334.    call close(stats)
  335.    call open(news7,file.2,'A')
  336.    call writeln(news7,'Ganglord 'alias' has moved into the Chicago!')
  337.    call close(news7)
  338.    signal menuopt
  339. end
  340. else do
  341.    call open(stats,bbspath2'gangland/'Name,'R')
  342.    alias = readln(stats)
  343.    Turnsleft = readln(stats)
  344.    gangmembers = readln(stats)
  345.    date = readln(stats)
  346.    startx = readln(stats)
  347.    starty = readln(stats)
  348.    points = readln(stats)
  349.    money = readln(stats)
  350.    totalgangmembers = readln(stats)
  351.    protection = readln(stats)
  352.    bootleg = readln(stats)
  353.    call close(stats)
  354.    if datec = date & turnsleft = 0 then do
  355.       say CLSCREEN
  356.       SAY ''||CR
  357.       SAY RED'You are out of turns for today!'CLEAR||CR
  358.       CALL delay(100)
  359.       signal quickexit
  360.    end
  361.    if datec ~= date then turnsleft = 25
  362.    call open(news7,file.2,'A')
  363.    call writeln(news7,'Ganglord 'alias' is active again!')
  364.    call close(news7)
  365.    signal menuopt
  366. end
  367.  
  368. menuopt:
  369.  say ''cr
  370. prompt( '   Would you like to have full menus for this game? (N,y) > ')
  371. menuans=readstr()
  372. if menuans = 'Y' then menus = 1
  373. if menuans = 'N' then do
  374.  say ''cr
  375.  say' OK, no menus. If you change your mind, type ''T'' at the prompt.'cr
  376.  end
  377. say ''cr
  378. signal Fame
  379.  
  380. Fame:
  381.  if exists(file.12) then do
  382.   call open(fm,file.12,'R')
  383.   fameline = '********************************************'
  384.   fameline = center(fameline,70)
  385.   say MAGENTA''fameline''cr
  386.   headerline = 'GangLord Hall of Fame'
  387.   headerline = center(headerline,70)
  388.   say YELLOW''headerline''cr
  389.   say MAGENTA''fameline''CLEAR''cr
  390.   say ''cr
  391.    do until eof(fm)
  392.     fmline = readln(fm)
  393.     fmline = center(fmline,70)
  394.     say GREEN''fmline''clear''cr
  395.     end
  396.   say ''cr
  397.   say ''cr
  398.   call close(fm)
  399.   end
  400.   CALL delay(100)
  401.  signal readoneliner
  402.  
  403. readoneliner:
  404. if ~exists(file.11) then signal MAIN
  405. say ''cr
  406. call open(fny,file.11,'R');mess=readln(fny);bywhom=readln(fny)
  407. say ''longdashes''cr;say ''CYAN''mess ''YELLOW''bywhom''CLEAR''cr;say ''longdashes''cr
  408. call close(fny);call delay(200)
  409. signal MAIN
  410.  
  411. main:
  412. if startx = 1 & starty = 1 then signal pool
  413. if startx = 25 & starty = 25 then signal casino
  414. say CLSCREEN
  415. if menus = 1 then do
  416.   SAY ''||CR
  417.    SAY '          'YELLOW'Q = Quit to' bbsname ''||CR
  418.    SAY '          S = Shootout'||CR
  419.    SAY '          O = Offer protection to the storeowners'||CR
  420.    SAY '          A = Add more protection to this block'||CR
  421.    SAY '          H = Hit the the protected block of another gang'||CR
  422.    SAY '          M = Move to another block'||CR
  423.    SAY '          G = Ganglord scores'||CR
  424.    SAY '          N = Chicago Daily News'||CR
  425.    SAY '          I = Instructions'||CR
  426.    SAY '          Y = Your statistics'||CR
  427.    SAY '          T = Toggle menus on/off'CLEAR||CR
  428.    SAY ''||CR
  429.   end
  430. SAY center(''GREEN''alias'',70)||CR
  431. SAY ''||CR
  432. SAY CYAN'You are at the corner of 'street.startx' North and 'street.starty' East'||CR
  433. SAY 'You have 'gangmembers' gangmembers with you'||CR
  434. protect_alias = Delword(protect.startx.starty,1,1)
  435. protect_gang = Word(protect.startx.starty,1)
  436. if protect_alias ~= '' then do
  437.    proflag = 0
  438.    SAY 'This block is protected by' GREEN||protect_alias||CLEAR||CR
  439. end
  440. else do
  441.    SAY 'This block is not under protection'||CLEAR||CR
  442.    proflag = 1
  443. end
  444. if 1 <= pos then do i = 1 to pos
  445.    if posstartx.i = startx & posstarty.i = starty & alias ~= posalias.i then
  446.    SAY 'You also see 'posalias.i' on this block there are 'posgang.i' gangmembers with him!'||CR
  447. end
  448. SAY ''||CR
  449. prompt(  MAGENTA'Q S O A H M G N I Y T ? ('YELLOW||turnsleft||MAGENTA')>'CLEAR)
  450. ans=readstr()
  451. CALL checkBBS()
  452. if ans = '###PANIC' then signal goodbye
  453. if ans = 'Q' then signal goodbye
  454. if ans = 'S' then signal shootout
  455. if ans = 'O' then signal protection
  456. if ans = 'A' then signal addon
  457. if ans = 'H' then signal hitother
  458. if ans = 'M' then signal move
  459. if ans = 'G' then signal highscores
  460. if ans = 'N' then signal news
  461. if ans = 'I' then signal instructions
  462. if ans = 'Y' then signal stats
  463. if ans = 'T' then do
  464.  say ''cr
  465.  if menus = 0 then do
  466.   say'  OK, I''ll turn your menus on!'cr
  467.   menus = 1
  468.   say ''cr
  469.   signal main
  470.   end
  471.  if menus = 1 then do
  472.   say'  OK, your menus are now turned off.'cr
  473.   menus = 0
  474.   say ''cr
  475.   signal main
  476.   end
  477. end
  478. if ans = '' then signal main
  479. if ans = '?' then do
  480.    SAY ''||CR
  481.    SAY '          'YELLOW'Q = Quit to' bbsname ''||CR
  482.    SAY '          S = Shootout'||CR
  483.    SAY '          O = Offer protection to the storeowners'||CR
  484.    SAY '          A = Add more protection to this block'||CR
  485.    SAY '          H = Hit the the protected block of another gang'||CR
  486.    SAY '          M = Move to another block'||CR
  487.    SAY '          G = Ganglord scores'||CR
  488.    SAY '          N = Chicago Daily News'||CR
  489.    SAY '          I = Instructions'||CR
  490.    SAY '          Y = Your statistics'||CR
  491.    SAY '          T = Toggle menus'CLEAR||CR
  492.    SAY ''||CR
  493.    call pressreturn
  494.    /*continue*/
  495. end
  496. signal main
  497.      
  498. pool:
  499. say CLSCREEN
  500. if menus = 1 then do
  501.    SAY ''||CR
  502.    SAY '          'YELLOW'M = Move'||CR
  503.    SAY '          H = Hire new gangmembers'||CR
  504.    SAY '          B = Buy a bootleg operation'||CR
  505.    SAY '          G = Gamble at a game of pool'||CR
  506.    SAY '          Q = Quit to 'bbsname ''CLEAR||CR
  507.    SAY ''||CR
  508.   end
  509. say yellow'Check out the UnderWorld Casino! At 25, 25.'clear||cr
  510. say ''cr
  511. SAY GREEN'Welcome to the Southside Pool Hall'||CR
  512. SAY 'What is your pleasure?'CLEAR||CR
  513. SAY ''||CR
  514. prompt(  YELLOW'M H B G Q ? ('turnsleft')>'CLEAR)
  515. ANS=readstr()
  516. if ans = '###PANIC' then signal goodbye
  517. if ans = 'M' then signal move
  518. if ans = 'H' then signal hire
  519. if ans = 'B' then signal still
  520. if ans = 'G' then signal gamble
  521. if ans = 'Q' then do
  522.    startx = upper(random(1,25,time('s')))
  523.    starty = upper(random(1,25,time('s')))
  524.    signal goodbye
  525. end
  526. if ans = '' then signal pool
  527. if ans = '?' then do
  528.    SAY ''||CR
  529.    SAY '          'YELLOW'M = Move'||CR
  530.    SAY '          H = Hire new gangmembers'||CR
  531.    SAY '          B = Buy a bootleg operation'||CR
  532.    SAY '          G = Gamble at a game of pool'||CR
  533.    SAY '          Q = Quit to 'bbsname ''CLEAR||CR
  534.    SAY ''||CR
  535.    call pressreturn
  536.    /*continue*/
  537. end
  538. signal main
  539.  
  540. casino:
  541. say CLSCREEN
  542. if menus = 1 then do
  543.    SAY ''||CR
  544.    SAY '          'YELLOW'M = Move'||CR
  545.    SAY '          H = Hire new gangmembers'||CR
  546.    SAY '          B = Play a hand of BlackJack'||CR
  547.    SAY '          S = Try the Slot machine'||CR
  548.    SAY '          Q = Quit to 'bbsname ''CLEAR||CR
  549.    SAY ''||CR
  550.    end
  551. SAY GREEN'   Welcome to the Underworld Casino'||CR
  552. SAY '   What is your pleasure?'CLEAR||CR
  553. say'   You have $'money''cr
  554. SAY ''||CR
  555. prompt(  YELLOW'M H B S Q ? ('turnsleft')>'CLEAR)
  556. ANS=readstr()
  557. if ans = '###PANIC' then signal goodbye
  558. if ans = 'M' then signal move
  559. if ans = 'H' then signal hire
  560. if ans = 'B' then signal BlackJack
  561. if ans = 'S' then signal Slots
  562. if ans = 'Q' then do
  563.    startx = upper(random(1,25,time('s')))
  564.    starty = upper(random(1,25,time('s')))
  565.    signal goodbye
  566. end
  567. if ans = '' then signal pool
  568. if ans = '?' then do
  569.    SAY ''||CR
  570.    SAY '          'YELLOW'M = Move'||CR
  571.    SAY '          H = Hire new gangmembers'||CR
  572.    SAY '          B = Play a hand of BlackJack'||CR
  573.    SAY '          S = Try the Slot machine'||CR
  574.    SAY '          Q = Quit to 'bbsname ''CLEAR||CR
  575.    SAY ''||CR
  576.    call pressreturn
  577.    /*continue*/
  578. end
  579. signal main
  580.  
  581. BlackJack:
  582.    if money < 1 then do
  583.     say'  You don''t seem to have any cash at this time!'cr
  584.     say'  Sorry, but we don''t play for the fun of it!'
  585.     call casino
  586.     end
  587.    if turnsleft < 1 then do
  588.     say'  Sorry, you don''t have any turns left!'cr
  589.     say'  Try again next time!'cr
  590.     say''cr
  591.     call casino
  592.     end
  593.    turnsleft = turnsleft - 1
  594.    CALL SetClip('CHICMON',money)
  595.    if colorflag = 1 then CALL SetClip('CHICCOLOR','1')
  596.    say ''cr
  597.    say'   OK, let''s play a hand of BlackJack!'
  598.  
  599. /*trace ?r  */
  600.  
  601. curdir=PRAGMA('D')
  602. CALL setdir(bbspath'rexxDoors')
  603.  
  604.    say ''cr
  605.    /*INTERPRET BlackJack.rexx*/
  606.    doors.temp = BlackJack.rexx
  607.    INTERPRET 'call' doors.temp
  608.  
  609.    money = GetClip('CHICMON')
  610.    CALL SetClip('CHICMON','')
  611.    CALL SetClip('CHICCOLOR','')
  612.    say ''cr
  613.    CALL setdir(curdir)
  614.    Call casino
  615.  
  616. Slots:
  617.    if money < 1 then do
  618.     say'  You don''t seem to have any cash at this time!'cr
  619.     say'  Sorry, but we don''t play for the fun of it!'
  620.     call casino
  621.     end
  622.    if turnsleft < 1 then do
  623.     say'  Sorry, you don''t have any turns left!'cr
  624.     say'  Try again next time!'cr
  625.     say''cr
  626.     call casino
  627.     end
  628.    turnsleft = turnsleft - 1
  629.    CALL SetClip('CHICMON',money)
  630.    if colorflag = 1 then CALL SetClip('CHICCOLOR','1')
  631.    say ''cr
  632.    /*say'   OK, let''s play a hand of BlackJack!'*/
  633.  
  634. /*trace ?r  */
  635.  
  636. curdir=PRAGMA('D')
  637. CALL setdir(bbspath'rexxDoors')
  638.  
  639.    say ''cr
  640.    /*INTERPRET BlackJack.rexx*/
  641.    doors.temp = One_Armed_Bandit.rexx
  642.    INTERPRET 'call' doors.temp
  643.  
  644.    money = GetClip('CHICMON')
  645.    CALL SetClip('CHICMON','')
  646.    CALL SetClip('CHICCOLOR','')
  647.    say ''cr
  648.    CALL setdir(curdir)
  649.    Call casino
  650.  
  651.  
  652. setdir:
  653. PARSE ARG tempdir
  654. CALL PRAGMA('D',STRIP(tempdir))
  655. directory=PRAGMA('D')
  656. slash=LASTPOS('/',directory)
  657. IF slash=0 THEN slash=LASTPOS(':',directory)
  658. plaindir=directory
  659. IF slash>0 THEN plaindir=SUBSTR(plaindir,slash+1)
  660. RETURN
  661.  
  662.  
  663. hire:
  664. say CLSCREEN
  665.    if turnsleft < 1 then do
  666.     say'  Sorry, you don''t have any turns left!'cr
  667.     say'  Try again next time!'cr
  668.     say''cr
  669.     signal main
  670.     end
  671. cost = random(100,200,time('s'))
  672. if costfor > cost then cost = costfor
  673. costfor = cost
  674. SAY CYAN'New gangmembers salaries are 'cost' dollars each.'||CR
  675. SAY 'You currently have 'gangmembers 'gangmembers and 'money' dollars.'||CR
  676. SAY ''||CR
  677. possible = money % cost
  678. prompt(  MAGENTA'How many gangmembers would you like to hire?('possible' max)')
  679. newgang=readstr()
  680. SAY  ' '
  681. if newgang = 0 | newgang = '' then signal /*pool*/main
  682. do i = 1 to length(newgang)
  683.    if ~datatype(substr(newgang,i,1),N) then do
  684.       SAY RED'You must enter a valid number!'||CR
  685.       CALL delay(100)
  686.       /*signal pool */
  687.       signal main
  688.    end
  689. end
  690. totcost = cost * newgang
  691. if totcost > money then do
  692.    SAY RED'You don''t have enough money for 'newgang' gangmembers!'||CR
  693.    CALL delay(100)
  694.    /*signal pool*/
  695.    signal main
  696. end
  697. SAY MAGENTA'The total of the salaries will be 'totcost' dollars.'||CR
  698. SAY ''||CR
  699. prompt(  CYAN'Are you sure you want to hire them? 'CLEAR)
  700. ans=readstr()
  701. SAY  ' '
  702. if ans = N then signal /*pool*/main
  703. money = money - totcost
  704. gangmembers = gangmembers + newgang
  705. totalgangmembers = totalgangmembers + newgang
  706. turnsleft = turnsleft - 1
  707. /*signal pool*/
  708. signal main
  709.  
  710. still:
  711.    if turnsleft < 1 then do
  712.     say'  Sorry, you don''t have any turns left!'cr
  713.     say'  Try again next time!'cr
  714.     say''cr
  715.     signal main
  716.     end
  717. if money < 5000 then do
  718.    SAY RED'You do not have enough money!'CLEAR||CR
  719.    CALL delay(100)
  720.    signal pool
  721. end
  722. SAY ''||CR
  723. SAY ''||CR
  724. SAY MAGENTA'Bootleg operations cost $5000 each. You have 'money' dollars.'||CR
  725. prompt( 'How many bootleg operations would you like to purchase?  ')
  726. ans=readstr()
  727. do i = 1 to length(ans)
  728.    if ~datatype(substr(ans,i,1),N) then do
  729.       SAY RED'You must enter a valid number!'||CR
  730.       CALL delay(100)
  731.       /*signal pool */
  732.       signal still
  733.    end
  734. end
  735. if ans = '' then signal pool
  736. cost = 5000 * ans
  737. if money < cost then do
  738.    SAY RED'You do not have that much money!'||CR
  739.    signal still
  740. end
  741. prompt( 'It will cost you 'cost' dollars. Are you sure? ')
  742. ans2=readstr()
  743.  
  744. if ans2 = 'N' then signal pool
  745. money = money - cost
  746. bootleg = bootleg + ans
  747. SAY ''||CR
  748. SAY CYAN'Nice doing business with you.'CLEAR||CR
  749. turnsleft = turnsleft - 1
  750. CALL delay(100)
  751. signal pool
  752.  
  753. gamble:
  754. say CLSCREEN
  755.    if turnsleft < 1 then do
  756.     say'  Sorry, you don''t have any turns left!'cr
  757.     say'  Try again next time!'cr
  758.     say''cr
  759.     signal pool
  760.     end
  761. prompt( CYAN'You have $'money', how much would you like to bet?($500 limit)'CLEAR)
  762. bet=readstr()
  763. SAY  ' '
  764. if bet > 500 then signal gamble
  765. do i = 1 to length(bet)
  766.    if ~datatype(substr(bet,i,1),N) then do
  767.       SAY RED'You must enter a valid whole number!'||CR
  768.       CALL delay(100)
  769.       signal pool
  770.    end
  771. end
  772. SAY ''||CR
  773. if bet > money then do
  774.   SAY RED'You don''t have that much money'CLEAR||CR
  775.   signal pool
  776.   end
  777. win = random(1,3,time('s'))
  778. if bet = '' then signal pool
  779. turnsleft = turnsleft - 1
  780. SAY YELLOW'Rack''em up'||CR
  781. CALL delay(100)
  782. SAY ''||CR
  783. if win = 2 then do
  784.    how = random(1,6,time('s'))
  785.    select
  786.       when how = 1 then SAY MAGENTA'You sank the 8 ball off the break!'||CR
  787.       when how = 2 then SAY MAGENTA'You left him with all 7 balls on the table'||CR
  788.       when how = 3 then SAY MAGENTA'You squeak out a victory by sinking the 8 ball'||CR
  789.       when how = 4 then SAY MAGENTA'He scratches on the 8 ball.'||CR
  790.       when how = 5 then SAY MAGENTA'You leave him with 3 balls on the table. Good work.'||CR
  791.       otherwise SAY MAGENTA'You run the table on him!'||CR
  792.    end
  793.    money = money + bet
  794.    SAY ''||CR
  795.    SAY GREEN'You win!'||CR
  796. end
  797. if win = 1 | win = 3 then do
  798.    how = random(1,6,time('s'))
  799.    select
  800.       when how = 1 then SAY GREEN'He sinks the 8 ball off the break!'||CR
  801.       when how = 2 then SAY GREEN'He left you with all 7 balls on the table'||CR
  802.       when how = 3 then SAY GREEN'He squeaks out a victory by sinking the 8 ball'||CR
  803.       when how = 4 then SAY GREEN'You scratch on the 8 ball. Tough Luck!'||CR
  804.       when how = 5 then SAY GREEN'He leaves you with 3 balls on the table.'||CR
  805.       otherwise SAY GREEN'He runs the table on you!'||CR
  806.    end
  807.    money = money - bet
  808.    SAY ''||CR
  809.    SAY RED'You lose!'||CR
  810. end
  811. CALL delay(100)
  812. signal pool
  813.  
  814. shootout:killflag = 0
  815. shoottotal = 0
  816. say CLSCREEN
  817. do i = 1 to pos
  818.    if posstartx.i = startx & posstarty.i = starty & alias ~= posalias.i then do
  819.       shoottotal = shoottotal + 1
  820.    end
  821. end
  822. if shoottotal = 0 then do
  823.    SAY RED'There is no one to attack!'||CR
  824.    CALL delay(100)
  825.    signal main
  826. end
  827. SAY MAGENTA'Ganglords at your block:'||CR
  828. SAY ''||CR
  829. do i = 1 to pos
  830.    if posstartx.i = startx & posstarty.i = starty & alias ~= posalias.i then do
  831.       SAY BLUE posalias.i  'with' posgang.i 'gangmembers'||CR
  832.       shoottotal = shoottotal + 1
  833.    end
  834. end
  835. SAY ''||CR
  836. w = 0
  837. prompt(  MAGENTA'Who do you want to attack?(Return to Quit) ')
  838. victim=readstr()
  839. SAY  ' '
  840. if victim = "" then signal main
  841. do i = 1 to pos
  842.    if victim = posalias.i then do
  843.       w = 1
  844.       r = i 
  845.       fight2 = posgang.i
  846.       break
  847.    end
  848.    if w = 1 then break
  849. end
  850. if posalias.r ~= victim then do
  851.    SAY RED'There is no one at this block by that name!'||CR
  852.    CALL delay(100)
  853.    signal main
  854. end
  855. fight3 = fight2
  856. yourper1 = (gangmembers / (gangmembers + fight2)) * 100
  857. if yourper1 > 95 then yourper1 = 95
  858. if yourper1 < 5 then yourper1 = 5
  859. if w = 0 then signal shootout
  860. call open(news7,file.2,'A')
  861. call writeln(news7,'Ganglord 'alias' tries to have a shootout with 'victim'.')
  862. call close(news7)
  863. fight1 = gangmembers
  864. say CLSCREEN
  865. SAY MAGENTA'         Your gang:                      His gang:'CR
  866. SAY BLUE   '        ----------                      ---------'CR
  867.  
  868. shootagain:
  869. say cyan   '             'gangmembers'                                'fight2''CR
  870. SAY ''||CR
  871. if killflag = 0 then do
  872.    prompt(  YELLOW'RETURN to Continue  K to Kill  Q to Quit ')
  873.    ans=readstr()
  874.    if ans = Q then signal quitter2
  875.    if ans = K then killflag = 1
  876. end
  877. losers1 = Random(1,100)
  878. if yourper1 >= losers1 then fight2 = fight2 - 1
  879. else gangmembers = gangmembers - 1
  880. /*if gangmembers <= -1 then do
  881.    gangmembers = -1
  882.    signal shootyou
  883. end
  884. if fight2 <= -1 then do
  885.    fight2 = -1
  886.    signal shoothim */
  887. if gangmembers <= 0 then do
  888.    gangmembers = 0
  889.    signal shootyou
  890. end
  891. if fight2 <= 0 then do
  892.    fight2 = 0
  893.    signal shoothim
  894. end
  895. /*if colorflag = 1 then do
  896.    SAY HOM||CR
  897.    SAY ''||CR
  898.    SAY ''||CR
  899.    SAY ''||CR
  900.    SAY ''||CR
  901.    SAY '                                                  '||CR
  902.    SAY HOM||CR
  903.    SAY ''||CR
  904.    SAY ''||CR
  905. end      */
  906. signal Shootagain 
  907.               
  908. shootyou:
  909. /*if colorflag = 1 then do
  910.    SAY HOM||CR
  911.    SAY ''||CR
  912.    SAY ''||CR
  913.    SAY ''||CR
  914.    SAY ''||CR
  915.    SAY '                                                  '||CR
  916.    SAY HOM||CR
  917.    SAY ''||CR
  918.    SAY ''||CR
  919. end  */
  920. say cyan   '             'gangmembers'                                'fight2''CR
  921. SAY ''||CR
  922. CALL delay(50)
  923. call open(aliases,bbspath2'gangland/aliases','R')
  924. u = 1
  925. do until EOF(aliases)
  926.   alias1.u = readln(aliases)
  927.    alias2.u = word(alias1.u,1)
  928.    alias3.u = Delword(alias1.u,1,1)
  929.    if alias3.u = victim then do
  930.       aliasfix = alias2.u
  931.       signal shootyou1
  932.    end
  933.    u = u + 1
  934. end
  935.  
  936. shootyou1:
  937. call close(aliases)
  938. call open(provictim,bbspath2'gangland/'aliasfix,'R')
  939. vicalias = readln(provictim)
  940. vicTurnsleft = readln(provictim)
  941. vicgangmembers = readln(provictim)
  942. vicdate = readln(provictim)
  943. vicstartx = readln(provictim)
  944. vicstarty = readln(provictim)
  945. vicpoints = readln(provictim)
  946. vicmoney = readln(provictim)
  947. victotalgangmembers = readln(provictim)
  948. vicprotection = readln(provictim)
  949. vicbootleg = readln(provictim)
  950. call close(provictim)
  951. vicgangmembers = vicgangmembers - (fight3 - fight2)
  952. victotalgangmembers = victotalgangmembers - (fight3 - fight2)
  953. pointsg = victotalgangmembers * 100
  954. pointsp = vicprotection * 1000
  955. vicpoints = pointsg + pointsp
  956. vicmoney = vicmoney + money
  957. vicbootleg = vicbootleg + bootleg
  958. call open(provictim,bbspath2'gangland/'aliasfix,'W')
  959. call writeln(provictim,vicalias)
  960. call writeln(provictim,victurnsleft)
  961. call writeln(provictim,vicgangmembers)
  962. call writeln(provictim,vicdate)
  963. call writeln(provictim,vicstartx)
  964. call writeln(provictim,vicstarty)
  965. call writeln(provictim,vicpoints)
  966. call writeln(provictim,vicmoney)
  967. call writeln(provictim,victotalgangmembers)
  968. call writeln(provictim,vicprotection)
  969. call writeln(provictim,vicbootleg)
  970. call close(provictim)
  971. call open(top10,bbspath2'gangland/top10','R')
  972. do i = 2 to 11
  973.    tops = readln(top10)
  974.    topalias.i = delword(tops,1,1)
  975.    topscore.i = word(tops,1)
  976.    if victim = topalias.i then topscore.i = vicpoints
  977. end
  978. call close(top10)
  979. call open(top10,bbspath2'gangland/top10','W')
  980. do i = 1 to 10
  981.    call writeln(top10,topscore.i' 'topalias.i)
  982. end
  983. call close(top10)
  984. call open(news7,file.2,'A')
  985. call writeln(news7,'Ganglord 'alias' is killed by 'victim'''s gang!')
  986. call close(news7)
  987. signal death
  988.  
  989. shoothim:
  990. /*if colorflag = 1 then do
  991.    SAY HOM||CR
  992.    SAY ''||CR
  993.    SAY ''||CR
  994.    SAY ''||CR
  995.    SAY ''||CR
  996.    SAY '                                                  '||CR
  997.    SAY HOM||CR
  998.    SAY ''||CR
  999.    SAY ''||CR
  1000. end   */
  1001. say cyan   '             'gangmembers'                                'fight2''CR
  1002. SAY ''||CR
  1003. SAY center(YELLOW'You wipe him out!',76)||CR
  1004. totalgangmembers = totalgangmembers - (Fight1 - gangmembers)
  1005. call open(aliases,bbspath2'gangland/aliases','R')
  1006. u = 1
  1007. do until EOF(aliases)
  1008.    alias1.u = readln(aliases)
  1009.    alias2.u = word(alias1.u,1)
  1010.    alias3.u = Delword(alias1.u,1,1)
  1011.    if alias3.u = victim then break
  1012.    u = u + 1
  1013. end
  1014. call close(aliases)
  1015. call open(provictim,bbspath2'gangland/'alias2.u,'R')
  1016. vicalias = readln(provictim)
  1017. vicTurnsleft = readln(provictim)
  1018. vicgangmembers = readln(provictim)
  1019. vicdate = readln(provictim)
  1020. vicstartx = readln(provictim)
  1021. vicstarty = readln(provictim)
  1022. vicpoints = readln(provictim)
  1023. vicmoney = readln(provictim)
  1024. victotalgangmembers = readln(provictim)
  1025. vicprotection = readln(provictim)
  1026. vicbootleg = readln(provictim)
  1027. call close(provictim)
  1028. money = vicmoney + money
  1029. bootleg = vicbootleg + bootleg
  1030. do i = 1 to pos
  1031.    if victim = posalias.i then do
  1032.       money = money + posmoney.i
  1033.       mypos.i = ''
  1034.       posstartx.i = ''
  1035.       posstarty.i = ''
  1036.       posgang.i = ''
  1037.       posmoney.i = ''
  1038.       posalias.i = ''
  1039.    end
  1040. end
  1041. call open(aliases,bbspath2'gangland/aliases','R')
  1042. do o = 1 to 10000
  1043.    alias1.o = readln(aliases)
  1044.    alias2.o = Word(alias1.o,1)
  1045.    alias3.o = Delword(alias1.o,1,1)
  1046.    if victim = alias3.o then do
  1047.       /*delete(bbspath2'gangland/'alias2.o)*/
  1048.       address command 'c:delete 'bbspath2'gangland/'alias2.o' quiet'
  1049.       alias1.o = ''
  1050.    end
  1051.    if EOF(aliases) then break
  1052. end
  1053. j = o
  1054. call close(aliases)
  1055. call open(aliases,bbspath2'gangland/aliases','W')
  1056. do o = 1 to 10000
  1057.    if alias1.o ~= '' then call writeln(aliases,alias1.o)
  1058.    if o = j then break 
  1059. end
  1060. call close(aliases)
  1061. do c = 1 to 25
  1062.    do c1 = 1 to 25
  1063.       if Delword(protect.c.c1,1,1) = victim then
  1064.       protect.c.c1 = 0
  1065.     end
  1066. end
  1067. SAY ''||CR
  1068. call open(top10,bbspath2'gangland/top10','R')
  1069. do i = 1 to 10
  1070.    tops.i = readln(top10)
  1071.    if delword(tops.i,1,1) = victim then tops.i = '0 'victim
  1072. end
  1073. call close(top10)
  1074. call open(top10,bbspath2'gangland/top10','W')
  1075. do i = 1 to 10
  1076.    call writeln(top10,tops.i)
  1077. end
  1078. call close(top10)
  1079. call open(news7,file.2,'A')
  1080. call writeln(news7,'Ganglord 'alias' slaughters 'victim)
  1081. call close(news7)
  1082. signal main
  1083.  
  1084. quitter2:
  1085. do i = 1 to pos
  1086.    if victim = posalias.i then do
  1087.       w = 1 
  1088.       posgang.i = fight2
  1089.       break
  1090.    end
  1091. end
  1092. call open(news7,file.2,'A')
  1093. call writeln(news7,'Ganglord 'alias' runs from the shootout.')
  1094. call close(news7)
  1095. SAY center(YELLOW'Chicken!',76)||CR
  1096. CALL delay(100)
  1097. signal main
  1098.  
  1099. protection:
  1100. if gangmembers < 1 then do
  1101.    SAY ''||CR
  1102.    SAY RED'You don''t have enough gangmembers with you to offer protection!'CLEAR||CR
  1103.    CALL delay(100)
  1104.    signal main
  1105. end
  1106. protectors = word(protect.startx.starty,1)
  1107. if protectors = 0 then signal noprotect
  1108. do
  1109.    protect_alias = Delword(protect.startx.starty,1,1)
  1110.    SAY ''||CR
  1111.    SAY ''||CR
  1112.    SAY RED'The block already has protection from 'protect_alias'!'CLEAR||CR
  1113.    CALL delay(100)
  1114.    signal main 
  1115. end
  1116.  
  1117. noprotect:
  1118. SAY ''||CR
  1119. prompt(  GREEN'How many gangmembers do you want to leave here?'CLEAR)
  1120. protectors=readstr()
  1121. SAY  ' '
  1122. if protectors = 0 then signal main
  1123. if protectors = ' ' then signal main
  1124. do i = 1 to length(protectors)
  1125.    if ~datatype(substr(protectors,i,1),N) then do
  1126.       SAY RED'You must enter a valid whole number!'||CR
  1127.       CALL delay(100)
  1128.       signal main
  1129.    end
  1130. end
  1131. if gangmembers - protectors < 0 then do
  1132.    SAY RED'You don''t have that many gangmembers!'||CR
  1133.    signal noprotect
  1134. end
  1135. gangmembers = gangmembers - protectors
  1136. protection = protection + 1
  1137. protect.startx.starty = protectors' 'alias
  1138. turnsleft = turnsleft - 1
  1139. signal main
  1140.  
  1141. addon:
  1142. say CLSCREEN
  1143. protect_gang = word(protect.startx.starty,1)
  1144. if protect_alias ~= alias then do
  1145.    SAY RED'You have to move to a block you are protecting to add gangmembers'CLEAR||CR
  1146.    CALL delay(100)
  1147.    signal main
  1148. end
  1149. SAY GREEN'You currently have 'protect_gang' gangmembers protecting this block.'||CR
  1150. prompt( GREEN'How many gangmembers do you want to add?')
  1151. addto=readstr()
  1152. SAY  ' '
  1153. if addto = '' then signal main
  1154. if gangmembers - addto < 0 then do
  1155.    SAY RED'You don''t have that many gangmembers!'||CR
  1156.    CALL delay(100)
  1157.    signal main
  1158. end
  1159. if protect_gang + addto < 1 then do
  1160.    SAY RED'You can''t have less than 1 gangmember!'||CR
  1161.    CALL delay(100)
  1162.    signal main
  1163. end
  1164. protect_add = addto + protect_gang
  1165. protect.startx.starty = protect_add ' ' alias
  1166. gangmembers = gangmembers - addto
  1167. signal main
  1168.  
  1169. hitother:
  1170. killflag = 0
  1171. say CLSCREEN
  1172. if proflag = 1 then do
  1173.    SAY RED'There is no one protecting this block!'CLEAR||CR
  1174.    CALL delay(100)
  1175.    signal main
  1176. end
  1177. if alias = protect_alias then do
  1178.    SAY RED'You cannot attack yourself!'||CR
  1179.    CALL delay(100)
  1180.    signal main
  1181. end
  1182. lostgang = protect_gang
  1183. yourper = (gangmembers / (gangmembers + lostgang)) * 100
  1184. if yourper > 95 then yourper = 95
  1185. call open(news7,file.2,'A')
  1186. call writeln(news7,'Ganglord 'alias' tries to hit 'protect_alias'''s block.')
  1187. call close(news7)
  1188. SAY MAGENTA'           Your gang:                      His gang:'CR
  1189. SAY BLUE   '          ----------                      ---------'CR
  1190.  
  1191. hitagain:
  1192. say cyan   '               'gangmembers'                              'protect_gang''CR
  1193. SAY ''||CR
  1194. if killflag = 0 then do
  1195.    prompt( YELLOW'RETURN to Continue  K to kill  Q to Quit ')
  1196.    ANS=readstr()
  1197.    if ans = Q then signal quitter
  1198.    if ans = K then killflag = 1
  1199. end
  1200. losers = random(1,100)
  1201. if yourper >= losers then Protect_gang = Protect_gang - 1
  1202. else gangmembers = gangmembers - 1
  1203. if gangmembers <= -1 then do
  1204.    gangmembers = -1
  1205.    signal hityou
  1206. end
  1207. if protect_gang <= 0 then do
  1208.    protect_gang = 0
  1209.    signal hitthem
  1210. end
  1211. /*if colorflag = 1 then do
  1212.    SAY HOM||CR
  1213.    SAY ''||CR
  1214.    SAY ''||CR
  1215.    SAY ''||CR
  1216.    SAY ''||CR
  1217.    SAY '                                                  '||CR
  1218.    SAY HOM||CR
  1219.    SAY ''||CR
  1220.    SAY ''||CR
  1221. end  */
  1222. signal hitagain   
  1223.  
  1224. Hityou:
  1225. /*if colorflag = 1 then do
  1226.    SAY HOM||CR
  1227.    SAY ''||CR
  1228.    SAY ''||CR
  1229.    SAY ''||CR
  1230.    SAY ''||CR
  1231.    SAY '                                                  '||CR
  1232.    SAY HOM||CR
  1233.    SAY ''||CR
  1234.    SAY ''||CR
  1235. end  */
  1236. say cyan   '               'gangmembers'                              'protect_gang''CR
  1237. SAY ''||CR
  1238. protect.startx.starty = protect_gang' 'protect_alias
  1239. CALL delay(100)
  1240. call open(news7,file.2,'A')
  1241. call writeln(news7,'Ganglord 'alias' is killed by 'protect_gang'''s gang!')
  1242. call close(news7)
  1243. signal death
  1244.  
  1245. hitthem:
  1246. /*if colorflag = 1 then do
  1247.    SAY HOM||CR
  1248.    SAY ''||CR
  1249.    SAY ''||CR
  1250.    SAY ''||CR
  1251.    SAY ''||CR
  1252.    SAY '                                                  '||CR
  1253.    SAY HOM||CR
  1254.    SAY ''||CR
  1255.    SAY ''||CR
  1256. end    */
  1257. say cyan   '               'gangmembers'                              'protect_gang''CR
  1258. SAY ''||CR
  1259. protect.startx.starty = 0
  1260. SAY ''||CR
  1261. SAY center(YELLOW'You wipe him out!',76)||CR
  1262. CALL delay(100)
  1263. call open(news7,file.2,'A')
  1264. call writeln(news7,'Ganglord 'alias' slaughters 'protect_alias'''s gang!')
  1265. call close(news7)
  1266. call open(aliases,bbspath2'gangland/aliases','R')
  1267. u = 0
  1268. do until EOF(aliases)
  1269.    u = u + 1
  1270.    alias1.u = readln(aliases)
  1271.    alias2.u = word(alias1.u,1)
  1272.    alias3.u = Delword(alias1.u,1,1)
  1273.    if alias3.u = protect_alias then do
  1274.       alias2 = alias2.u
  1275.       alias3 = alias3.u
  1276.       break
  1277.    end 
  1278. end
  1279. call close(aliases)
  1280. call open(provictim,bbspath2'gangland/'alias2,'R')
  1281. vicalias = readln(provictim)
  1282. vicTurnsleft = readln(provictim)
  1283. vicgangmembers = readln(provictim)
  1284. vicdate = readln(provictim)
  1285. vicstartx = readln(provictim)
  1286. vicstarty = readln(provictim)
  1287. vicpoints = readln(provictim)
  1288. vicmoney = readln(provictim)
  1289. victotalgangmembers = readln(provictim)
  1290. vicprotection = readln(provictim)
  1291. vicbootleg = readln(provictim)
  1292. call close(provictim)
  1293. vicprotection = vicprotection - 1
  1294. victotalgangmembers = victotalgangmembers - lostgang
  1295. call open(provictim,bbspath2'gangland/'alias2,'W')
  1296. call writeln(provictim,vicalias)
  1297. call writeln(provictim,victurnsleft)
  1298. call writeln(provictim,vicgangmembers)
  1299. call writeln(provictim,vicdate)
  1300. call writeln(provictim,vicstartx)
  1301. call writeln(provictim,vicstarty)
  1302. call writeln(provictim,vicpoints)
  1303. call writeln(provictim,vicmoney)
  1304. call writeln(provictim,victotalgangmembers)
  1305. call writeln(provictim,vicprotection)
  1306. call writeln(provictim,vicbootleg)
  1307. call close(provictim)
  1308. call open(top10,bbspath2'gangland/top10','R')
  1309. do i = 1 to 10
  1310.    tops = readln(top10)
  1311.    topalias.i = delword(tops,1,1)
  1312.    topscore.i = word(tops,1)
  1313.    if protect_alias = topalias.i then topscore.i = (topscore.i - 1000 - (lostgang * 100))
  1314. end
  1315. call close(top10)
  1316. call open(top10,bbspath2'gangland/top10','W')
  1317. do i = 1 to 10
  1318.    call writeln(top10,topscore.i' 'topalias.i)
  1319. end
  1320. call close(top10)
  1321. signal main
  1322.  
  1323. quitter:
  1324. protect.startx.starty = protect_gang' 'protect_alias
  1325. call open(news7,file.2,'A')
  1326. call writeln(news7,'Ganglord 'alias' runs from the fight.')
  1327. call close(news7)
  1328. SAY center(YELLOW'Chicken!',76)||CR
  1329. CALL delay(100)
  1330. signal main
  1331.  
  1332. move:
  1333. if turnsleft < 1 then do
  1334.    SAY ''||CR
  1335.    SAY RED'You do not have any turns left!'||CR
  1336.    CALL delay (100)
  1337.    signal main
  1338. end
  1339. SAY ''||CR
  1340. SAY ''||CR
  1341. SAY BLUE'What location do you want to move to?'||CR
  1342. prompt(  '                               North:')
  1343. startxtemp1=readstr()
  1344. SAY  ' '
  1345. startxtemp = strip(startxtemp1,'L','0')
  1346. do i = 1 to 25
  1347.    if startxtemp = i then leave
  1348.    if i = 25 then do
  1349.       SAY ''||CR
  1350.       SAY RED'Street numbers can only be whole numbers between 1 and 25'CLEAR||CR
  1351.       CALL delay(100)
  1352.       signal main
  1353.    end
  1354. end
  1355. prompt(  '                                East:')
  1356. startytemp1=readstr()
  1357. SAY  ' '
  1358. startytemp = strip(startytemp1,'L','0')
  1359. do i = 1 to 25
  1360.    if startytemp = i then leave
  1361.    if i = 25 then do
  1362.       SAY ''||CR
  1363.       SAY RED'Street numbers can only be whole numbers between 1 and 25'CLEAR||CR
  1364.       CALL delay(100)
  1365.       signal main
  1366.    end
  1367. end
  1368. startx = startxtemp
  1369. starty = startytemp
  1370. turnsleft = turnsleft - 1
  1371. signal main
  1372.  
  1373. highscores:
  1374. call open(top10,bbspath2'gangland/top10','R')
  1375. pointsg = totalgangmembers * 100
  1376. pointsp = protection * 1000
  1377. points = pointsg + pointsp
  1378. topalias.1 = alias
  1379. topscore.1 = points
  1380. do i = 2 to 11
  1381.    tops = readln(top10)
  1382.    topalias.i = delword(tops,1,1)
  1383.    topscore.i = word(tops,1)
  1384.    if topalias.1 = topalias.i then topscore.i = -1
  1385. end
  1386. call close(top10)
  1387. do i = 1 to 10
  1388.    do h = i + 1 to 11
  1389.       if topscore.i < topscore.h then do
  1390.          temp = topscore.i
  1391.          topscore.i = topscore.h
  1392.          topscore.h = temp
  1393.          tempor = topalias.i
  1394.          topalias.i = topalias.h
  1395.          topalias.h = tempor
  1396.       end
  1397.    end
  1398. end
  1399. say CLSCREEN
  1400.  
  1401. /*----------------------------------------------------------------------
  1402.                          Check for a winner!
  1403. -----------------------------------------------------------------------*/
  1404. wingoal = 500000
  1405.  do i = 1 to 10
  1406.   if datatype(topscore.i,'N') = 1 & topscore.i >= wingoal then do
  1407.    winner = topalias.i
  1408.    winscore = topscore.i
  1409.     if ~exists(file.12) then do
  1410.      call open(winfile,file.12,'W')
  1411.      call writeln(winfile,date'    'winner'    'winscore)
  1412.      call close(winfile)
  1413.      temp.file = 'Ram:temp.file12'
  1414.      address command 'c:copy 'file.12' 'temp.file' quiet'
  1415.      end
  1416.     else do
  1417.      call open(winfile,file.12,'A')
  1418.      writeln(winfile,date'    'winner'    'winscore)
  1419.      call close(winfile)
  1420.      temp.file = 'Ram:temp.file12'
  1421.      address command 'c:copy 'file.12' 'temp.file' quiet'
  1422.      end
  1423.   say ''cr
  1424.   say' 'YELLOW'                 We have a winner!!!'cr
  1425.   say' 'RED' 'winner' is being added to ''The GangLord Hall of Fame!'''Clear''cr
  1426.   say ''cr
  1427.   signal reset
  1428.   end
  1429.  end
  1430.  
  1431. SAY YELLOW||center('-----------------------------------------',70)||CR
  1432. SAY RED||center('Top 10 Chicago Ganglords',70)||CR
  1433. SAY YELLOW||center('-----------------------------------------',70)||CR
  1434. SAY ''||CR
  1435. call open(top10,bbspath2'gangland/top10','W')
  1436. do i = 1 to 10
  1437.    say cyan||CENTER(LEFT(topalias.i,20) RIGHT(topscore.i,7),70)||CR
  1438.    call writeln(top10,topscore.i' 'topalias.i)
  1439. end
  1440. call close(top10)
  1441. SAY ''||CR
  1442. if quiting = 1 then do
  1443.  SAY ''||CR
  1444.  SAY ''||CR
  1445.  SAY '              'RED' Thank you for playing Chicago Gangland'||CR
  1446.  SAY ''||CR
  1447.  SAY '            'MAGENTA'Now returning you to the 'bbsname' 'CLEAR||CR
  1448.  SAY ''||CR
  1449.  CALL delay(100)
  1450. exit
  1451. end
  1452. call pressreturn
  1453. /*continue*/
  1454. signal main
  1455.  
  1456. news:
  1457. say CLSCREEN
  1458. q = 0
  1459. do i = 2 to 8
  1460.    select
  1461.       when i = 2 then SAY CYAN||CR
  1462.       when i = 3 then SAY RED||CR
  1463.       when i = 4 then SAY MAGENTA||CR
  1464.       when i = 5 then SAY BLUE||CR
  1465.       when i = 6 then SAY GREEN||CR
  1466.       when i = 7 then SAY YELLOW||CR
  1467.       otherwise SAY WHITE||CR
  1468.    end
  1469.    if exists(file.i) then call open(gamenews,file.i,'R')
  1470.    if exists(file.i) then do until EOF(gamenews)
  1471.       q = q + 1
  1472.       SAY Readln(gamenews)||CR
  1473.       if q // (LINES - 3) = 0 then do
  1474.          prompt( 'Hit RETURN to continue or Q to quit ')
  1475.          ANS=readstr()
  1476.          if ans = 'Q' then do
  1477.             call close(gamenews)
  1478.             signal main
  1479.          end
  1480.       end
  1481.    end
  1482.    call close(gamenews)
  1483. end
  1484. /*call pressreturn*/
  1485. /*continue*/
  1486. if i = 8 /*& eof(file.1) = 1 then do*/then signal main
  1487.  call pressreturn
  1488.  signal main
  1489.  end
  1490.  
  1491. instructions:
  1492. say CLSCREEN
  1493. SAY ''||CR
  1494. i = 1
  1495. call open(instr,file.1,'R')
  1496. do until EOF(instr)
  1497.    SAY Readln(instr)||CR
  1498.    if i // LINES = 0 
  1499.    then do
  1500.       call pressreturn
  1501.       /*continue*/
  1502.    end
  1503.    i = i + 1
  1504. end
  1505. call close(instr)
  1506. call pressreturn
  1507. /*continue*/
  1508. signal main
  1509.  
  1510. stats:
  1511. say CLSCREEN
  1512. SAY center(RED'-----------------------------------------',76)||CR
  1513. SAY center(YELLOW||Spacename'''s' 'STATISTICS',76)||CR
  1514. SAY center(RED'-----------------------------------------',76)||CR
  1515. SAY ''||CR
  1516. Say CYAN '   Alias: 'Alias''cr
  1517. Say CYAN '   Position: ' Street.startx 'North ' Street.starty 'East'CR
  1518. Say CYAN '   Total Gangmembers: 'totalgangmembers''CR
  1519. Say CYAN '   Gangmembers with you: 'gangmembers''CR
  1520. Say CYAN '   Money: 'money''CR
  1521. Say CYAN '   Bootleg Operations: 'bootleg''CR
  1522. SAY ''||CR
  1523. SAY CYAN 'Blocks protected:'||CR
  1524. i = 12
  1525. do c = 1 to 25
  1526.    do c1 = 1 to 25
  1527.       protect_alias = Delword(protect.c.c1,1,1)
  1528.       if protect_alias = alias then do
  1529.          SAY MAGENTA street.c 'North' street.c1 'East with' word(protect.c.c1,1) 'gangmembers'||CR
  1530.          if i // LINES - 1 = 0 then call pressreturn
  1531.          i = i + 1
  1532.       end
  1533.    end
  1534. end
  1535. call pressreturn
  1536. /*continue*/
  1537. signal main
  1538.  
  1539. reset:
  1540.  say ''cr
  1541.  say ' Please standby, the game is being reset!'cr
  1542.  say ''cr
  1543.  address command 'c:delete 'bbspath2'Gangland/#? quiet'
  1544.  backuppath = bbspath2'GangBackups/'
  1545.  
  1546.  address command 'c:copy 'backuppath'news6 'file.3' quiet'
  1547.  address command 'c:copy 'backuppath'news5 'file.4' quiet'
  1548.  address command 'c:copy 'backuppath'news4 'file.5' quiet'
  1549.  address command 'c:copy 'backuppath'news3 'file.6' quiet'
  1550.  address command 'c:copy 'backuppath'news2 'file.7' quiet'
  1551.  address command 'c:copy 'backuppath'news1 'file.8' quiet'
  1552.  address command 'c:copy 'backuppath'aliases 'file.13' quiet'
  1553.  address command 'c:copy 'backuppath'protect 'file.9' quiet'
  1554.  address command 'c:copy 'backuppath'top10 'file.14' quiet'
  1555.  address command 'c:copy 'temp.file' 'file.12' quiet'
  1556.  call delete(temp.file)
  1557.     call open(news7,file.2,'W')
  1558.     call writeln(news7,'******************************************************')
  1559.     call writeln(news7,'                THE CHICAGO DAILY NEWS')
  1560.     call writeln(news7,'                     'datec)
  1561.     call writeln(news7,'******************************************************')
  1562.     call writeln(news7,' ')
  1563.     call writeln(news7,' GangLord 'winner' wins the game with a score of 'winscore'!')
  1564.     call writeln(news7,' The game has been reset!')
  1565.     call close(news7)
  1566.  
  1567.  mess = ''winner' has won the game, and the game has been reset!'
  1568.  call open(fnx,file.11,'W');call writeln(fnx,mess);call close(fnx)
  1569.  
  1570.  say ''cr
  1571.  say' The game is now reset!'cr
  1572.  say' Play again to be the first gangster in the new game!'cr
  1573.  say ''cr
  1574.  exit
  1575.  
  1576.  
  1577. death:
  1578. say CLSCREEN
  1579. SAY center(RED'You have died 'SpaceName'.',76)||CR
  1580. SAY ''||CR
  1581. Say CYAN'Clearing your stats..'CR
  1582. do c = 1 to 25
  1583.    CALL WRITECH(STDOUT,'.')
  1584.    do c1 = 1 to 25
  1585.       protect_alias = Delword(protect.c.c1,1,1)
  1586.       if protect_alias = alias then
  1587.       protect.c.c1 = 0  
  1588.    end
  1589. end
  1590. /*delete(bbspath2'gangland/'Name)     */
  1591. address command 'c:delete 'bbspath2'gangland/'Name' quiet'
  1592. totalgangmembers = 0
  1593. protection = 0
  1594. deathflag = 1
  1595. signal goodbye
  1596.  
  1597. goodbye:
  1598. say CLSCREEN
  1599. Say CYAN'Saving game stats..'cr
  1600. call open(aliases,bbspath2'gangland/aliases','W')
  1601. u = 1
  1602. do i = 1 to marker - 1
  1603.    if name' 'alias ~= alias1.u then
  1604.    call writeln(aliases,alias1.u)
  1605.    u = u + 1
  1606. end
  1607. if deathflag = 0 then call writeln(aliases,name' 'alias)
  1608. call close(aliases)
  1609. call open(lastpos,file.10,'W')
  1610. q = 1
  1611. if pos ~= 0 then do i = 1 to pos
  1612.    if alias ~= posalias.q then
  1613.    call writeln(lastpos,mypos.q)
  1614.    q = q + 1
  1615. end
  1616. if deathflag = 0 then call writeln(lastpos,startx' 'starty' 'gangmembers' 'money' 'alias)
  1617. call close(lastpos)
  1618. call open(prot,File.9,'W')
  1619. do c = 1 to 25
  1620.    CALL WRITECH(STDOUT,'.')
  1621.    do c1 = 1 to 25
  1622.       call writeln(prot,protect.c.c1)
  1623.    end
  1624. end
  1625. call writeln(prot,datec)
  1626. call close(prot)
  1627. pointsg = totalgangmembers * 100
  1628. pointsp = protection * 1000
  1629. points = pointsg + pointsp
  1630. call open(top10,bbspath2'gangland/top10','R')
  1631. topalias.1 = alias
  1632. topscore.1 = points
  1633. do i = 2 to 11
  1634.    tops = readln(top10)
  1635.    topalias.i = delword(tops,1,1)
  1636.    topscore.i = word(tops,1)
  1637.    if topalias.1 = topalias.i then topscore.i = -1
  1638. end
  1639. call close(top10)
  1640. do i = 1 to 10
  1641.    do h = i + 1 to 11
  1642.       if topscore.i < topscore.h then do
  1643.          temp = topscore.i
  1644.          topscore.i = topscore.h
  1645.          topscore.h = temp
  1646.          tempor = topalias.i
  1647.          topalias.i = topalias.h
  1648.          topalias.h = tempor
  1649.       end
  1650.    end
  1651. end
  1652. call open(top10,bbspath2'gangland/top10','W')
  1653. do i = 1 to 10
  1654.    call writeln(top10,topscore.i' 'topalias.i)
  1655. end
  1656. call close(top10)
  1657. if exists(bbspath2'gangland/'Name) then do
  1658.    call open(stats,bbspath2'gangland/'Name,'W')
  1659.    call writeln(stats,alias)
  1660.    call writeln(stats,turnsleft)
  1661.    call writeln(stats,gangmembers)
  1662.    call writeln(stats,datec)
  1663.    call writeln(stats,startx)
  1664.    call writeln(stats,starty)
  1665.    call writeln(stats,points)
  1666.    call writeln(stats,money)
  1667.    call writeln(stats,totalgangmembers)
  1668.    call writeln(stats,protection)
  1669.    call writeln(stats,bootleg)
  1670.    call close(stats)
  1671. end
  1672. say CLSCREEN
  1673. call oneliner
  1674. quiting = 1
  1675. call highscores
  1676. SAY ''||CR
  1677. SAY ''||CR
  1678. SAY '              'RED' Thank you for playing Chicago Gangland'||CR
  1679. SAY ''||CR
  1680. SAY '            'MAGENTA'Now returning you to the 'bbsname' 'CLEAR||CR
  1681. CALL delay(100)
  1682. exit
  1683.  
  1684. ONELINER:
  1685. say ''cr
  1686. prompt(  ''CYAN' Do you want to leave a message for the next Gangster (y/N)?'CLEAR' > ')
  1687.  
  1688. result=readstr();ans=upper(result)
  1689. if ans~='Y' then do
  1690.   say ''YELLOW'  No'CLEAR''cr
  1691.   return
  1692.   end
  1693. say ''WHITE'  Yes'CLEAR''cr;say ''cr
  1694. prompt( ''GREEN' Enter a ONE LINE message:'CLEAR' ';say ''cr)
  1695.  
  1696. result=readstr(); mess=result
  1697. if length(mess)<10 then do
  1698.   say ''YELLOW'Message too short, Entry Aborted.'CLEAR''cr;signal ONELINER
  1699.   end
  1700. say ''cr
  1701. say ''longdashes''cr
  1702. say ''MAGENTA''mess ''alias''CLEAR''cr
  1703. say ''longdashes''cr
  1704. say ''cr
  1705. prompt(  ''BLUE' Does this look OK?'CLEAR' > ')
  1706.  
  1707.  
  1708. result=readstr();ans=upper(result)
  1709. if ans='N' then do
  1710.   say ' Nope!'cr;signal ONELINER
  1711.   end
  1712. say ''MAGENTA' Yep!'CLEAR''cr
  1713. if exists(file.11) then do
  1714.   address command 'c:delete 'file.11' quiet'
  1715.   end
  1716. call open(fnx,file.11,'W');call writeln(fnx,mess);call writeln(fnx,alias);call close(fnx)
  1717. return
  1718.  
  1719.  
  1720. quickexit:
  1721.    say CLSCREEN
  1722.    call oneliner
  1723.    quiting = 1
  1724.    call highscores
  1725.    SAY ''||CR
  1726.    SAY ''||CR
  1727.    SAY '              'RED' Thank you for playing Chicago Gangland'||CR
  1728.    SAY ''||CR
  1729.    SAY '            'MAGENTA'Now returning you to 'bbsname' 'CLEAR||CR
  1730.    CALL delay(100)
  1731.    exit
  1732.  
  1733. pressreturn:
  1734. say ''cr
  1735. SAY '  Press a key to continue'
  1736. out=readch(STDIN)
  1737. return
  1738.  
  1739. readstr: procedure
  1740. str=''
  1741. out=readch(STDIN)
  1742.  call WRITECH(STDOUT,out)
  1743.  do while out~=D2C(13)
  1744.       if out=D2C(8) then do
  1745.          str=SUBSTR(str,1,LENGTH(str)-1)
  1746.          call WRITECH(STDOUT,' ')
  1747.          call WRITECH(STDOUT,out)
  1748.          end
  1749.       else
  1750.          str=INSERT(str,out)
  1751.       out=readch(STDIN)
  1752.       call WRITECH(STDOUT,out)
  1753.     end
  1754. say '0D'x
  1755. return(UPPER(str))
  1756.  
  1757. prompt: procedure
  1758. parse arg str
  1759. writech(STDOUT,str)
  1760. return 1
  1761.  
  1762. /************************* Error Checking *********************************/
  1763.  
  1764. syntax:
  1765.    SAY '*BOOM*  Got a syntax error.  PLEASE notify the sysop.'||CR
  1766.    SAY 'Line:' SIGL '   Error Code:' RC||CR
  1767. exit
  1768.  
  1769. checkBBS:
  1770. IF ADDRESS()~='BAUD' THEN RETURN 0
  1771. IF TIME('e')>secs THEN SIGNAL goodbye
  1772. dcd
  1773. IF RC=0 THEN SIGNAL goodbye
  1774. temp=secs-TIME('E')
  1775. IF temp<120 THEN SAY '*** Only' temp 'seconds left! ***'CR
  1776. RETURN 0
  1777.  
  1778.  
  1779. BREAK_C:
  1780. BREAK_E:
  1781. call goodbye
  1782. CALL CLOSE(f)
  1783. RETURN(count);
  1784. EXIT;                           /* a little redundant, so sue me! */
  1785.  
  1786. /**************************************************************************/